package com.youngjun.user.service;

import com.youngjun.common.mybatis.page.PageParams;
import com.youngjun.common.mybatis.service.support.BaseService;
import com.youngjun.user.mapper.InterfaceMapper;
import com.youngjun.user.pojo.domain.Interface;
import com.youngjun.user.pojo.dto.InterfaceDTO;
import com.youngjun.user.pojo.dto.query.FunctionInterfaceQueryDTO;
import com.youngjun.user.pojo.dto.query.InterfaceQueryDTO;
import com.youngjun.user.pojo.vo.InterfaceVO;

import java.util.List;

/**
 * @author virgojun
 */
public interface InterfaceService extends BaseService<Interface,InterfaceMapper> {

    /**
     * 查询未分配的接口信息
     * @param dto 查询参数
     * @return List<InterfaceVO>
     */
    List<InterfaceVO> queryUnAssignedList(FunctionInterfaceQueryDTO dto, PageParams pageParams);

    /**
     * 查询已分配的接口信息
     * @param dto 查询参数
     * @return List<InterfaceVO>
     */
    List<InterfaceVO> queryAssignedList(FunctionInterfaceQueryDTO dto);

    /**
     * 查询接口信息
     * @param dto 查询参数
     * @return List<InterfaceVO>
     */
    List<InterfaceVO> queryList(InterfaceQueryDTO dto, PageParams pageParams);

    /**
     * 创建接口信息
     * @param dto 接口信息
     * @return InterfaceVO
     */
    InterfaceVO create(InterfaceDTO dto);

    /**
     * 修改接口信息
     * @param dto 接口信息
     * @return InterfaceVO
     */
    InterfaceVO modify(InterfaceDTO dto);

    /**
     * 删除接口信息
     * @param interfaceId 接口id
     */
    void delete(Long interfaceId);

}